﻿using System;
using System.Collections.Generic;
using System.Linq.Expressions;

namespace PropertyExpression.ControllableQuery
{
    public interface IParams<T>
    {
        string Param<TProperty>(Expression<Func<T, TProperty>> propertyExpression);

        string Param<TProperty>(Expression<Func<T, TProperty>> propertyExpression, int index);

        string Param<TItem>(Expression<Func<T, IEnumerable<TItem>>> propertyExpression);

        string Param<TItem>(Expression<Func<T, IEnumerable<TItem>>> propertyExpression, int index);
    }
}